Air Quality 12 Click
Air Quality 12 Click demo application is developed using the NECTO Studio, ensuring compatibility with mikroSDK's open-source libraries and tools. Designed for plug-and-play implementation and testing, the demo is fully compatible with all development, starter, and mikromedia boards featuring a mikroBUS™ socket.
Click Library
- Author : Stefan Filipovic
- Date : Aug 2024.
- Type : I2C/UART type
Software Support
Example Description
This example demonstrates the use of Air Quality 12 Click board by reading the IAQ 2nd Gen measurements and displays the results on the USB UART.
Example Libraries
- MikroSDK.Board
- MikroSDK.Log
- Click.AirQuality12
Example Key Functions
- airquality12_cfg_setup Config Object Initialization function.
void airquality12_cfg_setup(airquality12_cfg_t *cfg)
Air Quality 12 configuration object setup function.
Air Quality 12 Click configuration object.
Definition airquality12.h:217
- airquality12_init Initialization function.
struct airquality12_s airquality12_t
Air Quality 12 Click context object.
err_t airquality12_init(airquality12_t *ctx, airquality12_cfg_t *cfg)
Air Quality 12 initialization function.
- airquality12_default_cfg Click Default Configuration function.
err_t airquality12_default_cfg(airquality12_t *ctx)
Air Quality 12 default configuration function.
- airquality12_get_sensor_info This function reads the device product ID, firmware version, and tracking number.
err_t airquality12_get_sensor_info(airquality12_t *ctx, airquality12_info_t *info)
Air Quality 12 get sensor info function.
Air Quality 12 Click device info object.
Definition airquality12.h:258
- airquality12_get_int_pin This function returns the INT pin logic state.
uint8_t airquality12_get_int_pin(airquality12_t *ctx)
Air Quality 12 get int pin function.
- airquality12_get_measurement This function reads the sensor measurement results.
err_t airquality12_get_measurement(airquality12_t *ctx, airquality12_results_t *results)
Air Quality 12 get measurement function.
Air Quality 12 Click measurement results object.
Definition airquality12.h:272
Application Init
Initializes the driver and configures the Click board to the default configuration. Then it reads the sensor product ID, firmware version, and the 48-bit tracking number.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
{
log_printf( &logger, " ---- Sensor info ----\r\n" );
log_printf( &logger,
" Product ID: 0x%.4X\r\n", info.
product_id );
log_printf( &logger,
" FW version: %u.%u.%u\r\n", ( uint16_t ) info.
fw_ver_major,
log_printf( &logger, " Tracking number: 0x%.2X%.2X%.2X%.2X%.2X%.2X\r\n",
log_printf( &logger, " ---------------------\r\n" );
}
log_info( &logger, " Application Task " );
}
@ AIRQUALITY12_ERROR
Definition airquality12.h:289
@ AIRQUALITY12_OK
Definition airquality12.h:288
#define AIRQUALITY12_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition airquality12.h:167
void application_init(void)
Definition main.c:36
#define MIKROBUS_POSITION_AIRQUALITY12
Definition main.c:30
uint16_t product_id
Definition airquality12.h:259
uint8_t tracking_num[6]
Definition airquality12.h:263
uint8_t fw_ver_minor
Definition airquality12.h:261
uint8_t fw_ver_major
Definition airquality12.h:260
uint8_t fw_ver_patch
Definition airquality12.h:262
Application Task
Checks the data ready interrupt pin and then reads the IAQ 2nd Gen measurements and displays the results on the USB UART. The GP1 LED turns ON during the data reading. The data sample rate is set to 3 seconds for the IAQ 2nd Gen operating mode, and the first 100 samples upon startup should be ignored since the sensor is in the warm-up phase.
{
{
{
log_printf ( &logger,
" Sample number: %u\r\n", ( uint16_t ) results.
sample_num );
log_printf ( &logger,
" IAQ: %.1f\r\n", results.
iaq );
log_printf ( &logger,
" TVOC: %.2f mg/m^3\r\n", results.
tvoc );
log_printf ( &logger,
" ETOH: %.2f ppm\r\n", results.
etoh );
log_printf ( &logger,
" ECO2: %u ppm\r\n", results.
eco2 );
log_printf ( &logger,
" rel_IAQ: %u\r\n\n", results.
rel_iaq );
}
}
}
void airquality12_set_gp1_pin(airquality12_t *ctx, uint8_t state)
Air Quality 12 set gp1 pin function.
void application_task(void)
Definition main.c:87
uint16_t rel_iaq
Definition airquality12.h:278
float etoh
Definition airquality12.h:276
uint16_t eco2
Definition airquality12.h:277
float tvoc
Definition airquality12.h:275
float iaq
Definition airquality12.h:274
uint8_t sample_num
Definition airquality12.h:273
Application Output
This Click board can be interfaced and monitored in two ways:
- Application Output - Use the "Application Output" window in Debug mode for real-time data monitoring. Set it up properly by following this tutorial.
- UART Terminal - Monitor data via the UART Terminal using a USB to UART converter. For detailed instructions, check out this tutorial.
Additional Notes and Information
The complete application code and a ready-to-use project are available through the NECTO Studio Package Manager for direct installation in the NECTO Studio. The application code can also be found on the MIKROE GitHub account.